// src/models/planets.model.js

// 导⼊ express 模块，⽤于创建和配置应⽤程序
const express = require('express');
// 创建⼀个 express 应⽤程序实例
const app = express();
// 使⽤ express 内置的中间件解析 JSON 格式的请求体
app.use(express.json());
// 导出应⽤程序实例，以便在其他⽂件中使⽤
module.exports = app;
const fs = require('fs');
const path = require('path');
const parse = require('csv-parse').parse;
const habitablePlanets = [];
// 通过检查⾏星数据的属性，判断⾏星是否适合居住
function isHabitablePlanet(planet) {
    return planet['koi_disposition'] === 'CONFIRMED' && planet['koi_insol'] > 0.36 && planet['koi_insol'] < 1.11 && planet['koi_prad'] < 1.6;
}
// 从 CSV ⽂件中加载⾏星数据
function loadPlanetsData() {
    return new Promise((resolve, reject) => {
        fs.createReadStream(path.join(__dirname, '..',
        '..', 'data', 'kepler_data.csv'))
        .pipe(parse({
        comment: '#',
        columns: true,
        }))
        .on('data', (data) => {

            if (isHabitablePlanet(data)) {
                habitablePlanets.push(data);
            }
        })
        .on('error', (err) => {
            console.log(err);
            reject(err);
        })
        .on('end', () => {
            console.log(`找到${habitablePlanets.length}个可居住星球！`);
            resolve();
        });
    });
}

function getAllPlanets() {
    
    return habitablePlanets;
}


module.exports = {
    loadPlanetsData,
    getAllPlanets,
};